package main

import "fmt"

func fn(a, b int) int {
	// 在函数fn返回之前执行
	defer func() {
		fmt.Println("结束")
	}()
	fmt.Println("计算过程...")

	return a + b
}
func fn2() {
	defer fmt.Println(1)
	defer fmt.Println(2)
	defer fmt.Println(3)
	fmt.Println("结束")
}

func main() {
	fn2() // 3 2 1
	// fmt.Println(fn(2, 3))
	// 在函数结束之前调用(延迟调用)
	// 确保在最后执行的代码放到defer中
	// defer fmt.Println("结束")
	// defer func() {
	// 	fmt.Println("结束")
	// }()
	// sum := 0
	// for i := 1; i <= 100; i++ {
	// 	sum += i
	// }
	// fmt.Println(sum)
}
